#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
配置管理模块

统一管理项目的所有配置，包括开发、测试、生产环境的配置。
整合了数据库配置、日志配置、Flask配置、环境变量配置等。

作者: AI Assistant
创建时间: 2024
"""

import os
from typing import Dict, Any, Optional

# 导入配置类
from .base_config import BaseConfig
from .development import DevelopmentConfig
from .production import ProductionConfig
from .config_manager import ConfigManager
from .logger_config import LoggerManager, get_logger, log_function_call, log_exception
# 环境变量配置已简化，现在直接使用 os.getenv()

# 配置映射
CONFIG_MAP = {
    'development': DevelopmentConfig,
    'production': ProductionConfig
}

def get_config(env='development'):
    """
    获取指定环境的配置
    
    Args:
        env (str): 环境名称 (development, testing, production)
        
    Returns:
        BaseConfig: 配置对象
    """
    config_class = CONFIG_MAP.get(env, DevelopmentConfig)
    return config_class()

def create_config_manager(env='development'):
    """
    创建配置管理器
    
    Args:
        env (str): 环境名称
        
    Returns:
        ConfigManager: 配置管理器实例
    """
    config = get_config(env)
    return ConfigManager(config)

__all__ = [
    'ConfigManager',
    'BaseConfig',
    'DevelopmentConfig',
    'ProductionConfig',
    'LoggerConfig',
    'get_logger',
    'get_config',
    'create_config_manager',
    'CONFIG_MAP'
]